package com.iwhalecloud.bss.kite.cucc.service.attr.linkhandler;

import com.iwhalecloud.bss.kite.common.constant.KeyConsts;
import com.iwhalecloud.bss.kite.common.util.KiteStringUtils;
import com.iwhalecloud.bss.kite.cucc.service.attr.LocalAttrHelper;
import com.iwhalecloud.bss.kite.cucc.service.attr.handler.LocalUnicomDIAAccessAttrHandler;
import com.iwhalecloud.bss.kite.listener.handler.attr.annotation.AttrHandler;
import com.iwhalecloud.bss.kite.listener.handler.attr.impl.AbstractAttrLinkageHandler;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttr;
import com.iwhalecloud.bss.kite.manager.inst.KiteInst;
import com.iwhalecloud.bss.kite.service.attr.AttrData;
import org.springframework.stereotype.Service;

import java.util.Objects;

/**
 * <Description> <br>
 *
 * @author cheng.leizhen01<br>
 * @version 1.0<br>
 * @taskId <br>
 * @CreateDate 2021年3月16日 <br>
 * @since R9.0<br>
 * @see com.iwhalecloud.bss.kite.cucc.service.attr.linkhandler <br>
 */
@Service
@AttrHandler(LocalUnicomDIAAccessAttrHandler.class)
public class LocalUnicomDIAAccessAttrLinkHandler extends AbstractAttrLinkageHandler<AttrData> {
    /**
     * 前期接入累计带宽	当用户是否已有联通DIA接入的值为‘是’时显示且必填，否则隐藏
     * 前期接入网络层级	当用户是否已有联通DIA接入的值为‘是’时显示且必填，否则隐藏
     * 前期接入协议	当用户是否已有联通DIA接入的值为‘是’时显示且必填，否则隐藏
     */

    @Override
    public void handle(KiteAttr attr, KiteInst inst, AttrData data) {
        if (Objects.isNull(attr)) {
            return;
        }
        //前期接入累计带宽 "2_0000214"
        // 前期接入网络层级2_0000082
        KiteAttr accessNetAttr = inst.getAttr("2_0000082");
        // 前期接入协议2_0000083
        KiteAttr accessProtocol = inst.getAttr("2_0000083");
        if(KiteStringUtils.equalsAny(attr.getValue(),"1_0000106" )){
            LocalAttrHelper.showAndNonnull(inst, "2_0000214", "2_0000082", "2_0000083");
            if (!Objects.isNull(accessNetAttr)) {
                accessNetAttr.setDefaultValue("");
                accessNetAttr.setValue("");
                accessNetAttr.setValueDesc("");
            }
            if (!Objects.isNull(accessProtocol)) {
                accessProtocol.setDefaultValue("");
                accessProtocol.setValue("");
                accessProtocol.setValueDesc("");
            }
        } else {
            LocalAttrHelper.hideAndNullable(inst, "2_0000214", "2_0000082", "2_0000083");
        }
    }

    @Override
    public void handleStyle(KiteAttr attr, KiteInst inst, AttrData data) {

    }

}
